<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
    <title>Socket.IO chat</title>
    <style>
      body {
        margin: 0;
        padding-bottom: 3rem;
        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
      }

      #form {
        background: rgba(0, 0, 0, 0.15);
        padding: 0.25rem;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        display: flex;
        height: 3rem;
        box-sizing: border-box;
        backdrop-filter: blur(10px);
      }
      #input {
        border: none;
        padding: 0 1rem;
        flex-grow: 1;
        border-radius: 2rem;
        margin: 0.25rem;
      }
      #input:focus {
        outline: none;
      }
      #form > button {
        background: #333;
        border: none;
        padding: 0 1rem;
        margin: 0.25rem;
        border-radius: 3px;
        outline: none;
        color: #fff;
      }

      #messages {
        list-style-type: none;
        margin: 0;
        padding: 0;
      }
      #messages > li {
        padding: 0.5rem 1rem;
      }
      #messages > li:nth-child(odd) {
        background: #efefef;
      }
    </style>
  </head>
  <body>
    <ul id="messages"></ul>
    <form id="form" action=""><input id="input" autocomplete="off" /><button>Send</button></form>

    <!-- <script src="/node_modules/socket.io/client-dist/socket.io.js"></script> -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.5.1/socket.io.min.js"></script>
    <script>
      // const socket = io();
      const AUTH_TOKEN = 'e97b51bb-7ed4-4d39-b826-1a2c2f0d9e76';

      const connect = () => {
        const options = {
          transports: ['websocket'],
          headers: { 'API-Authenticate': AUTH_TOKEN },
          path: 'api',
          autoConnect: false,
          reconnection: false,
        };

        const sio = io('wss://tt2-public.gamehivegames.com', options);

        sio.io.nsp = '/raid';
        sio.io.nsp = '/player';

        sio.on('connect', () => {
          console.log('Connected to WebSocket server');
          onConnect();
        });

        sio.on('connect_error', error => {
          console.error('Connection error:', error);
        });

        sio.connect();
      };

      const raid = () => {
        const raidOptions = {
          transports: ['websocket'],
          extraHeaders: { 'API-Authenticate': AUTH_TOKEN },
          path: '/api', // 通常路径需要以斜杠开头
          autoConnect: false,
          reconnection: false,
          nsp: '/raid',
          timeout: 3000,
        };

        // 连接到/raid命名空间的正确方式
        const raidSocket = io('wss://tt2-public.gamehivegames.com', raidOptions);

        raidSocket.on('connect', () => {
          console.log('Connected to /raid namespace');
          // 处理/raid命名空间的连接逻辑
        });

        raidSocket.on('connect_error', error => {
          console.error('/raid connection error:', error);
        });

        raidSocket.connect();
      };
    </script>
  </body>
</html>
